Skip to content

Conversation

@ignatandrei
Copy link
Owner

@ignatandrei ignatandrei commented Oct 3, 2025

Summary by CodeRabbit

  • New Features

    • Added VYaml as the 233rd example, including a runnable sample project, demo page, site entry, export data, CodeTour, and video script.
  • Documentation

    • Added comprehensive VYaml guide and example page.
    • Updated catalogs, categories, indices, and counts from 232 to 233 across site and README.
    • Included VYaml in PDF generation inputs.
  • Bug Fixes

    • Fixed generic type rendering in generated documentation (e.g., angle bracket escaping).
  • Chores

    • Updated latest dates and corrected links/numbering in ancillary pages.

Copilot AI review requested due to automatic review settings October 3, 2025 19:29
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request adds VYaml to the Roslyn Source Code Generator (RSCG) examples collection as the 233rd example. VYaml is a fast YAML serialization library for C# that uses source generators for efficient serialization/deserialization.

  • Adds VYaml as a new RSCG example with complete documentation and code samples
  • Updates all counters from 232 to 233 examples throughout the codebase
  • Removes VYaml from the "no examples" list since it now has a complete example

Reviewed Changes

Copilot reviewed 27 out of 29 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
RSCG.json Adds VYaml entry to the main generator list
indexRSCG.md Updates example count and adds VYaml to the chronological list
VYaml.md Complete documentation page for VYaml with usage examples
Multiple count files Updates counters from 232 to 233 examples
Example source files Adds complete C# project demonstrating VYaml usage
NoExample.json Removes VYaml from the excluded list

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

- [yaml-rust](https://github.com/chyh1990/yaml-rust)
- [Utf8Json](https://github.com/neuecc/Utf8Json), [MessagePack-CSharp](https://github.com/neuecc/MessagePack-CSharp), [MemoryPack](https://github.com/Cysharp/MemoryPack)

## Aurhor
Copy link

Copilot AI Oct 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Corrected spelling of 'Aurhor' to 'Author'.

Suggested change
## Aurhor
## Author

Copilot uses AI. Check for mistakes.
- [yaml-rust](https://github.com/chyh1990/yaml-rust)
- [Utf8Json](https://github.com/neuecc/Utf8Json), [MessagePack-CSharp](https://github.com/neuecc/MessagePack-CSharp), [MemoryPack](https://github.com/Cysharp/MemoryPack)

## Aurhor
Copy link

Copilot AI Oct 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Corrected spelling of 'Aurhor' to 'Author'.

Suggested change
## Aurhor
## Author

Copilot uses AI. Check for mistakes.
@coderabbitai
Copy link

coderabbitai bot commented Oct 3, 2025

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

Adds VYaml as the 233rd example: updates counts/dates across README, book, and site docs; introduces a new VYaml sample project (solution, csproj, code, tours, docs); updates data/catalog JSON and exports; and tweaks generator post-processing to escape generic types in documentation.

Changes

Cohort / File(s) Summary of changes
Generator post-processing
v2/Generator/MultiGeneratorV2.cs
Adds two text replacements to escape generic type parameters in generated docs: IYamlFormatter<T>IYamlFormatter&lt;T&gt;.
Core README and misc docs
README.md, later.md
Bumps total examples to 233, updates latest date to 2025-10-03, adds VYaml entry and adjusts numbering; updates links/list in “Why I have not tested”.
Data/catalog records
v2/RSCGExamplesData/GeneratorDataRec.json, v2/RSCGExamplesData/NoExample.json, v2/rscg_examples_site/static/exports/RSCG.json
Adds VYaml record; removes VYaml from NoExample; appends VYaml to export list with metadata.
Book site: list and inputs
v2/book/list.html, v2/book/examples/VYaml.html, v2/book/pandocHTML.yaml
Increments total to 233; adds VYaml example page and includes it in pandoc input files.
Docs site: categories and indexes
v2/rscg_examples_site/docs/Categories/Serializer.md, v2/rscg_examples_site/docs/Categories/_PrimitiveSerializer.mdx, v2/rscg_examples_site/docs/RSCG-Examples/index.md, v2/rscg_examples_site/docs/indexRSCG.md, v2/rscg_examples_site/docs/about.md, v2/rscg_examples_site/src/components/HomepageFeatures/index.js, v2/rscg_examples_site/docs/NoExamples.md
Updates counts (232→233), adds VYaml under Serializer, updates index pages and mermaid node, adjusts “NoExamples” links/numbering, updates homepage feature count.
New VYaml example project: metadata and guides
v2/rscg_examples/VYaml/description.json, v2/rscg_examples/VYaml/nuget.txt, v2/rscg_examples/VYaml/readme.txt, v2/rscg_examples/VYaml/video.json, v2/rscg_examples/VYaml/src/.tours/VYaml.tour
Adds generator metadata, nuget blurb, comprehensive readme, video/scripted walkthrough, and CodeTour.
New VYaml sample solution/project
v2/rscg_examples/VYaml/src/Serializer.sln, v2/rscg_examples/VYaml/src/Serializer/Serializer.csproj
Adds solution and .NET 9 console project with VYaml and VYaml.Annotations package refs; enables generated files output.
New VYaml sample code
v2/rscg_examples/VYaml/src/Serializer/Person.cs, v2/rscg_examples/VYaml/src/Serializer/Program.cs
Adds [YamlObject]-annotated Person class and a program demonstrating serialize/deserialize with YamlSerializer.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • unflat1 #401 — Similar adjustments in MultiGeneratorV2.cs for escaping generic type tokens in generated documentation.
  • ConsoleAppFramework #407 — Adds related string replacements for generic-type escaping in the doc generation pipeline.
  • first iteration #405 — Adds a new example and updates catalog/docs alongside MultiGeneratorV2.cs replacements, mirroring this PR’s pattern.

Poem

A nibble of YAML, a hop through the fields,
We count to 233—what joy this build yields!
With brackets escaped and formatters in line,
I serialize dreams in a silky vine.
Thump goes the paw, “VYaml’s here!”
Code-carrots for all—let’s cheer! 🥕✨

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings)
Check name Status Explanation Resolution
Title Check ⚠️ Warning The title “vyaml” is simply the lowercase name of the new example and does not describe the action or scope of the changes, making it too vague to convey that a VYaml example and associated documentation, code, and metadata are being added. Please rename the title to clearly summarize the main change, for example “Add VYaml example generator and documentation” or “Add VYaml source generator example with docs and metadata.”
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch yaml

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

♻️ Duplicate comments (2)
v2/rscg_examples/VYaml/readme.txt (1)

929-929: Fix typo in heading.

The heading "Aurhor" should be "Author".

Apply this diff:

-## Aurhor
+## Author

Note: This issue was previously flagged by Copilot but not addressed.

v2/rscg_examples_site/docs/RSCG-Examples/VYaml.md (1)

980-980: Typo: "Aurhor" should be "Author".

This spelling error was already identified in a previous review.

Apply this diff to correct the spelling:

-## Aurhor
+## Author
🧹 Nitpick comments (4)
later.md (1)

65-149: Resolve markdownlint bare URLs

The newly added entries include trailing bare URLs, triggering markdownlint MD034. Please wrap those URLs (e.g., <https://…>) or remove the redundant duplicates so the file passes lint. Based on static analysis.

-10) [https://github.com/hanachiru/RapidEnum]( https://github.com/hanachiru/RapidEnum) , https://github.com/hanachiru/RapidEnum 
+10) [https://github.com/hanachiru/RapidEnum]( https://github.com/hanachiru/RapidEnum) , <https://github.com/hanachiru/RapidEnum>
v2/Generator/MultiGeneratorV2.cs (1)

939-940: LGTM!

The escaping of generic type parameters (IYamlFormatter<T>IYamlFormatter&lt;T&gt;) ensures proper rendering in Markdown/HTML documentation.

Consider refactoring the long chain of .Replace() calls (lines 933-955) into a dictionary-based approach or a dedicated method for maintainability:

+private static readonly Dictionary<string, string> MarkdownEscapeReplacements = new()
+{
+    ["[IParsable<TSelf>.TryParse]"] = "[IParsable&lt;TSelf&gt;.TryParse]",
+    ["[ISpanParsable<TSelf>.TryParse]"] = "[ISpanParsable&lt;TSelf&gt;.TryParse]",
+    ["`IYamlFormatter<T>`"] = "`IYamlFormatter&lt;T&gt;`",
+    ["and identifies IYamlFormatter<T>"] = "and identifies IYamlFormatter&lt;T&gt;",
+    // ... rest of replacements
+};
+
+private static string ApplyMarkdownEscapes(string output)
+{
+    return MarkdownEscapeReplacements.Aggregate(output, (current, kvp) => current.Replace(kvp.Key, kvp.Value));
+}

This would improve maintainability and reduce the cognitive load of the current approach.

v2/RSCGExamplesData/GeneratorDataRec.json (1)

1407-1410: Align ID casing with the rest of the assets

Everywhere else (docs, folder name, list entry) this example is spelled VYaml. Keeping the same casing here avoids surprises on case-sensitive tooling and keeps the catalog consistent. Please switch the ID to VYaml.

-  "ID":"Vyaml",
+  "ID":"VYaml",
v2/rscg_examples/VYaml/src/.tours/VYaml.tour (1)

14-17: Consider more specific pattern matching.

The pattern "this is the code" in Person.cs step appears to be a placeholder. CodeTour patterns typically match actual code content for better navigation. Consider using a more specific pattern like "[YamlObject]" or "public partial class Person" to ensure the tour step highlights the relevant code.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 909527d and f3f7108.

⛔ Files ignored due to path filters (3)
  • v2/Generator/all.csv is excluded by !**/*.csv
  • v2/rscg_examples_site/static/exports/RSCG.xlsx is excluded by !**/*.xlsx
  • v2/rscg_examples_site/static/sources/VYaml.zip is excluded by !**/*.zip
📒 Files selected for processing (26)
  • README.md (3 hunks)
  • later.md (2 hunks)
  • v2/Generator/MultiGeneratorV2.cs (1 hunks)
  • v2/RSCGExamplesData/GeneratorDataRec.json (1 hunks)
  • v2/RSCGExamplesData/NoExample.json (0 hunks)
  • v2/book/examples/VYaml.html (1 hunks)
  • v2/book/list.html (2 hunks)
  • v2/book/pandocHTML.yaml (1 hunks)
  • v2/rscg_examples/VYaml/description.json (1 hunks)
  • v2/rscg_examples/VYaml/nuget.txt (1 hunks)
  • v2/rscg_examples/VYaml/readme.txt (1 hunks)
  • v2/rscg_examples/VYaml/src/.tours/VYaml.tour (1 hunks)
  • v2/rscg_examples/VYaml/src/Serializer.sln (1 hunks)
  • v2/rscg_examples/VYaml/src/Serializer/Person.cs (1 hunks)
  • v2/rscg_examples/VYaml/src/Serializer/Program.cs (1 hunks)
  • v2/rscg_examples/VYaml/src/Serializer/Serializer.csproj (1 hunks)
  • v2/rscg_examples/VYaml/video.json (1 hunks)
  • v2/rscg_examples_site/docs/Categories/Serializer.md (2 hunks)
  • v2/rscg_examples_site/docs/Categories/_PrimitiveSerializer.mdx (1 hunks)
  • v2/rscg_examples_site/docs/NoExamples.md (1 hunks)
  • v2/rscg_examples_site/docs/RSCG-Examples/VYaml.md (1 hunks)
  • v2/rscg_examples_site/docs/RSCG-Examples/index.md (4 hunks)
  • v2/rscg_examples_site/docs/about.md (1 hunks)
  • v2/rscg_examples_site/docs/indexRSCG.md (2 hunks)
  • v2/rscg_examples_site/src/components/HomepageFeatures/index.js (1 hunks)
  • v2/rscg_examples_site/static/exports/RSCG.json (1 hunks)
💤 Files with no reviewable changes (1)
  • v2/RSCGExamplesData/NoExample.json
🧰 Additional context used
🪛 Biome (2.1.2)
v2/rscg_examples/VYaml/video.json

[error] 35-36: Property key must be double quoted

(parse)


[error] 36-36: unexpected character =

(parse)


[error] 36-36: expected , but instead found " "

Remove " "

(parse)


[error] 36-36: expected : but instead found }

Remove }

(parse)


[error] 37-38: Expected an array, an object, or a literal but instead found ']'.

Expected an array, an object, or a literal here.

(parse)

🪛 markdownlint-cli2 (0.18.1)
later.md

65-65: Bare URL used

(MD034, no-bare-urls)


71-71: Bare URL used

(MD034, no-bare-urls)


77-77: Bare URL used

(MD034, no-bare-urls)


83-83: Bare URL used

(MD034, no-bare-urls)


89-89: Bare URL used

(MD034, no-bare-urls)


95-95: Bare URL used

(MD034, no-bare-urls)


101-101: Bare URL used

(MD034, no-bare-urls)


107-107: Bare URL used

(MD034, no-bare-urls)


113-113: Bare URL used

(MD034, no-bare-urls)


119-119: Bare URL used

(MD034, no-bare-urls)


125-125: Bare URL used

(MD034, no-bare-urls)


131-131: Bare URL used

(MD034, no-bare-urls)


137-137: Bare URL used

(MD034, no-bare-urls)


143-143: Bare URL used

(MD034, no-bare-urls)


149-149: Bare URL used

(MD034, no-bare-urls)

v2/rscg_examples_site/docs/NoExamples.md

305-305: Bare URL used

(MD034, no-bare-urls)


305-305: Bare URL used

(MD034, no-bare-urls)


309-309: Bare URL used

(MD034, no-bare-urls)


309-309: Bare URL used

(MD034, no-bare-urls)


313-313: Bare URL used

(MD034, no-bare-urls)


313-313: Bare URL used

(MD034, no-bare-urls)


317-317: Bare URL used

(MD034, no-bare-urls)


317-317: Bare URL used

(MD034, no-bare-urls)


321-321: Bare URL used

(MD034, no-bare-urls)


321-321: Bare URL used

(MD034, no-bare-urls)


325-325: Bare URL used

(MD034, no-bare-urls)


325-325: Bare URL used

(MD034, no-bare-urls)


329-329: Bare URL used

(MD034, no-bare-urls)


329-329: Bare URL used

(MD034, no-bare-urls)


333-333: Bare URL used

(MD034, no-bare-urls)


333-333: Bare URL used

(MD034, no-bare-urls)


337-337: Bare URL used

(MD034, no-bare-urls)


337-337: Bare URL used

(MD034, no-bare-urls)


341-341: Bare URL used

(MD034, no-bare-urls)


341-341: Bare URL used

(MD034, no-bare-urls)


345-345: Bare URL used

(MD034, no-bare-urls)


345-345: Bare URL used

(MD034, no-bare-urls)


349-349: Bare URL used

(MD034, no-bare-urls)


349-349: Bare URL used

(MD034, no-bare-urls)


353-353: Bare URL used

(MD034, no-bare-urls)


353-353: Bare URL used

(MD034, no-bare-urls)


357-357: Bare URL used

(MD034, no-bare-urls)


357-357: Bare URL used

(MD034, no-bare-urls)


361-361: Bare URL used

(MD034, no-bare-urls)


361-361: Bare URL used

(MD034, no-bare-urls)


365-365: Bare URL used

(MD034, no-bare-urls)


365-365: Bare URL used

(MD034, no-bare-urls)


369-369: Bare URL used

(MD034, no-bare-urls)


369-369: Bare URL used

(MD034, no-bare-urls)


373-373: Bare URL used

(MD034, no-bare-urls)


377-377: Bare URL used

(MD034, no-bare-urls)


381-381: Bare URL used

(MD034, no-bare-urls)


385-385: Bare URL used

(MD034, no-bare-urls)


389-389: Bare URL used

(MD034, no-bare-urls)


393-393: Bare URL used

(MD034, no-bare-urls)


397-397: Bare URL used

(MD034, no-bare-urls)


401-401: Bare URL used

(MD034, no-bare-urls)


405-405: Bare URL used

(MD034, no-bare-urls)


409-409: Bare URL used

(MD034, no-bare-urls)


413-413: Bare URL used

(MD034, no-bare-urls)


417-417: Bare URL used

(MD034, no-bare-urls)


421-421: Bare URL used

(MD034, no-bare-urls)


425-425: Bare URL used

(MD034, no-bare-urls)


429-429: Bare URL used

(MD034, no-bare-urls)


433-433: Bare URL used

(MD034, no-bare-urls)


437-437: Bare URL used

(MD034, no-bare-urls)


441-441: Bare URL used

(MD034, no-bare-urls)


445-445: Bare URL used

(MD034, no-bare-urls)


449-449: Bare URL used

(MD034, no-bare-urls)


453-453: Bare URL used

(MD034, no-bare-urls)


457-457: Bare URL used

(MD034, no-bare-urls)


461-461: Bare URL used

(MD034, no-bare-urls)


465-465: Bare URL used

(MD034, no-bare-urls)


469-469: Bare URL used

(MD034, no-bare-urls)


473-473: Bare URL used

(MD034, no-bare-urls)


477-477: Bare URL used

(MD034, no-bare-urls)


481-481: Bare URL used

(MD034, no-bare-urls)


485-485: Bare URL used

(MD034, no-bare-urls)


489-489: Bare URL used

(MD034, no-bare-urls)


493-493: Bare URL used

(MD034, no-bare-urls)


497-497: Bare URL used

(MD034, no-bare-urls)


501-501: Bare URL used

(MD034, no-bare-urls)


505-505: Bare URL used

(MD034, no-bare-urls)


509-509: Bare URL used

(MD034, no-bare-urls)


513-513: Bare URL used

(MD034, no-bare-urls)


517-517: Bare URL used

(MD034, no-bare-urls)


521-521: Bare URL used

(MD034, no-bare-urls)


525-525: Bare URL used

(MD034, no-bare-urls)


529-529: Bare URL used

(MD034, no-bare-urls)


533-533: Bare URL used

(MD034, no-bare-urls)


537-537: Bare URL used

(MD034, no-bare-urls)


541-541: Bare URL used

(MD034, no-bare-urls)


545-545: Bare URL used

(MD034, no-bare-urls)


549-549: Bare URL used

(MD034, no-bare-urls)


553-553: Bare URL used

(MD034, no-bare-urls)


557-557: Bare URL used

(MD034, no-bare-urls)


561-561: Bare URL used

(MD034, no-bare-urls)


565-565: Bare URL used

(MD034, no-bare-urls)


569-569: Bare URL used

(MD034, no-bare-urls)


573-573: Bare URL used

(MD034, no-bare-urls)


577-577: Bare URL used

(MD034, no-bare-urls)


581-581: Bare URL used

(MD034, no-bare-urls)


585-585: Bare URL used

(MD034, no-bare-urls)


589-589: Bare URL used

(MD034, no-bare-urls)


593-593: Bare URL used

(MD034, no-bare-urls)


597-597: Bare URL used

(MD034, no-bare-urls)


601-601: Bare URL used

(MD034, no-bare-urls)


605-605: Bare URL used

(MD034, no-bare-urls)


609-609: Bare URL used

(MD034, no-bare-urls)


613-613: Bare URL used

(MD034, no-bare-urls)


617-617: Bare URL used

(MD034, no-bare-urls)


621-621: Bare URL used

(MD034, no-bare-urls)


625-625: Bare URL used

(MD034, no-bare-urls)


629-629: Bare URL used

(MD034, no-bare-urls)


633-633: Bare URL used

(MD034, no-bare-urls)


637-637: Bare URL used

(MD034, no-bare-urls)


641-641: Bare URL used

(MD034, no-bare-urls)


645-645: Bare URL used

(MD034, no-bare-urls)


649-649: Bare URL used

(MD034, no-bare-urls)


653-653: Bare URL used

(MD034, no-bare-urls)


657-657: Bare URL used

(MD034, no-bare-urls)


661-661: Bare URL used

(MD034, no-bare-urls)


665-665: Bare URL used

(MD034, no-bare-urls)


669-669: Bare URL used

(MD034, no-bare-urls)


673-673: Bare URL used

(MD034, no-bare-urls)


677-677: Bare URL used

(MD034, no-bare-urls)


681-681: Bare URL used

(MD034, no-bare-urls)


685-685: Bare URL used

(MD034, no-bare-urls)


689-689: Bare URL used

(MD034, no-bare-urls)


693-693: Bare URL used

(MD034, no-bare-urls)


697-697: Bare URL used

(MD034, no-bare-urls)


701-701: Bare URL used

(MD034, no-bare-urls)


705-705: Bare URL used

(MD034, no-bare-urls)


709-709: Bare URL used

(MD034, no-bare-urls)


713-713: Bare URL used

(MD034, no-bare-urls)


717-717: Bare URL used

(MD034, no-bare-urls)

v2/rscg_examples_site/docs/indexRSCG.md

23-23: Spaces inside link text

(MD039, no-space-in-links)

README.md

5513-5513: Bare URL used

(MD034, no-bare-urls)


5517-5517: Bare URL used

(MD034, no-bare-urls)


5520-5520: Bare URL used

(MD034, no-bare-urls)


5524-5524: Bare URL used

(MD034, no-bare-urls)


5527-5527: Bare URL used

(MD034, no-bare-urls)


5531-5531: Bare URL used

(MD034, no-bare-urls)


5534-5534: Bare URL used

(MD034, no-bare-urls)


5538-5538: Bare URL used

(MD034, no-bare-urls)


5541-5541: Bare URL used

(MD034, no-bare-urls)


5545-5545: Bare URL used

(MD034, no-bare-urls)


5548-5548: Bare URL used

(MD034, no-bare-urls)


5552-5552: Bare URL used

(MD034, no-bare-urls)


5555-5555: Bare URL used

(MD034, no-bare-urls)


5559-5559: Bare URL used

(MD034, no-bare-urls)


5562-5562: Bare URL used

(MD034, no-bare-urls)


5566-5566: Bare URL used

(MD034, no-bare-urls)


5569-5569: Bare URL used

(MD034, no-bare-urls)


5573-5573: Bare URL used

(MD034, no-bare-urls)


5576-5576: Bare URL used

(MD034, no-bare-urls)


5580-5580: Bare URL used

(MD034, no-bare-urls)


5583-5583: Bare URL used

(MD034, no-bare-urls)


5587-5587: Bare URL used

(MD034, no-bare-urls)


5590-5590: Bare URL used

(MD034, no-bare-urls)


5594-5594: Bare URL used

(MD034, no-bare-urls)


5597-5597: Bare URL used

(MD034, no-bare-urls)


5601-5601: Bare URL used

(MD034, no-bare-urls)


5604-5604: Bare URL used

(MD034, no-bare-urls)


5608-5608: Bare URL used

(MD034, no-bare-urls)


5611-5611: Bare URL used

(MD034, no-bare-urls)


5615-5615: Bare URL used

(MD034, no-bare-urls)


5618-5618: Bare URL used

(MD034, no-bare-urls)


5622-5622: Bare URL used

(MD034, no-bare-urls)


5625-5625: Bare URL used

(MD034, no-bare-urls)


5629-5629: Bare URL used

(MD034, no-bare-urls)


5632-5632: Bare URL used

(MD034, no-bare-urls)


5636-5636: Bare URL used

(MD034, no-bare-urls)


5639-5639: Bare URL used

(MD034, no-bare-urls)


5643-5643: Bare URL used

(MD034, no-bare-urls)


5646-5646: Bare URL used

(MD034, no-bare-urls)


5650-5650: Bare URL used

(MD034, no-bare-urls)


5653-5653: Bare URL used

(MD034, no-bare-urls)


5657-5657: Bare URL used

(MD034, no-bare-urls)


5660-5660: Bare URL used

(MD034, no-bare-urls)


5664-5664: Bare URL used

(MD034, no-bare-urls)


5667-5667: Bare URL used

(MD034, no-bare-urls)


5671-5671: Bare URL used

(MD034, no-bare-urls)


5674-5674: Bare URL used

(MD034, no-bare-urls)


5678-5678: Bare URL used

(MD034, no-bare-urls)


5681-5681: Bare URL used

(MD034, no-bare-urls)


5685-5685: Bare URL used

(MD034, no-bare-urls)


5688-5688: Bare URL used

(MD034, no-bare-urls)


5692-5692: Bare URL used

(MD034, no-bare-urls)


5695-5695: Bare URL used

(MD034, no-bare-urls)


5699-5699: Bare URL used

(MD034, no-bare-urls)


5702-5702: Bare URL used

(MD034, no-bare-urls)


5706-5706: Bare URL used

(MD034, no-bare-urls)


5709-5709: Bare URL used

(MD034, no-bare-urls)


5713-5713: Bare URL used

(MD034, no-bare-urls)


5716-5716: Bare URL used

(MD034, no-bare-urls)


5720-5720: Bare URL used

(MD034, no-bare-urls)


5723-5723: Bare URL used

(MD034, no-bare-urls)


5727-5727: Bare URL used

(MD034, no-bare-urls)


5730-5730: Bare URL used

(MD034, no-bare-urls)


5734-5734: Bare URL used

(MD034, no-bare-urls)


5737-5737: Bare URL used

(MD034, no-bare-urls)


5741-5741: Bare URL used

(MD034, no-bare-urls)


5744-5744: Bare URL used

(MD034, no-bare-urls)


5748-5748: Bare URL used

(MD034, no-bare-urls)


5751-5751: Bare URL used

(MD034, no-bare-urls)


5755-5755: Bare URL used

(MD034, no-bare-urls)


5758-5758: Bare URL used

(MD034, no-bare-urls)


5762-5762: Bare URL used

(MD034, no-bare-urls)


5765-5765: Bare URL used

(MD034, no-bare-urls)


5769-5769: Bare URL used

(MD034, no-bare-urls)


5772-5772: Bare URL used

(MD034, no-bare-urls)


5776-5776: Bare URL used

(MD034, no-bare-urls)


5779-5779: Bare URL used

(MD034, no-bare-urls)

v2/rscg_examples_site/docs/RSCG-Examples/VYaml.md

34-34: Bare URL used

(MD034, no-bare-urls)


37-37: Bare URL used

(MD034, no-bare-urls)


39-39: Bare URL used

(MD034, no-bare-urls)


75-75: Link fragments should be valid

(MD051, link-fragments)


77-77: Unordered list indentation
Expected: 4; Actual: 6

(MD007, ul-indent)


77-77: Bare URL used

(MD034, no-bare-urls)


78-78: Unordered list indentation
Expected: 4; Actual: 6

(MD007, ul-indent)


93-93: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


104-104: Bare URL used

(MD034, no-bare-urls)


115-115: Blank line inside blockquote

(MD028, no-blanks-blockquote)


122-122: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


123-123: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


123-123: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


588-588: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


589-589: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


590-590: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


592-592: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


593-593: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


816-816: Bare URL used

(MD034, no-bare-urls)


830-830: Bare URL used

(MD034, no-bare-urls)


1018-1018: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1019-1019: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1020-1020: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1021-1021: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1022-1022: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1023-1023: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1024-1024: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1025-1025: Hard tabs
Column: 1

(MD010, no-hard-tabs)


1113-1113: Code block style
Expected: fenced; Actual: indented

(MD046, code-block-style)


1218-1218: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

v2/rscg_examples_site/docs/about.md

9-9: Bare URL used

(MD034, no-bare-urls)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: call-workflow-passing-data / build (24.3.0)
🔇 Additional comments (15)
v2/rscg_examples/VYaml/nuget.txt (1)

1-1: LGTM!

The NuGet description is clear and concise, accurately describing VYaml as a fast YAML library for C#.

v2/book/pandocHTML.yaml (1)

249-249: LGTM!

The addition of examples/VYaml.html to the input files list correctly includes the new VYaml example in the book generation.

v2/rscg_examples_site/src/components/HomepageFeatures/index.js (1)

7-7: LGTM!

The updated count (232 → 233) correctly reflects the addition of VYaml as the 233rd example.

v2/rscg_examples/VYaml/src/Serializer/Serializer.csproj (1)

14-15: <!--
[scratchpad]
[tasks] Verify package versions via web search. Completed.
[observations]

  • Serializer.csproj references VYaml and VYaml.Annotations version 1.2.0.
    [analysis]
  • Web search confirms latest VYaml version is 1.2.0.
    [pending]
  • None.
    [actions]
  • Generate final review comment marking versions as current.
    [done]
    -->

No changes needed: VYaml references are up-to-date. Both VYaml and VYaml.Annotations at version 1.2.0 are the latest stable releases.

v2/rscg_examples/VYaml/src/Serializer/Program.cs (1)

1-11: LGTM! Clear demonstration of VYaml serialization APIs.

The code correctly demonstrates both SerializeToString (returning a C# string) and Serialize<T> (returning UTF-8 bytes) followed by Deserialize<T>. While serializing the same object twice is redundant for production use, it effectively showcases the library's API surface.

v2/rscg_examples_site/docs/RSCG-Examples/index.md (3)

3-4: LGTM! Count updated correctly.

The title and description now reflect 233 total examples, consistent with adding VYaml.


1252-1302: LGTM! Serializer section updated correctly.

The count increment and new VYaml entry are properly formatted and positioned.


1876-1877: LGTM! Mermaid diagram updated correctly.

The new VYaml node and edge are properly formatted and follow the established pattern.

v2/rscg_examples/VYaml/src/.tours/VYaml.tour (1)

26-30: Generated file path is build-dependent.

The tour references a generated file in the obj/GX directory. While this is acceptable for demonstration purposes, note that this path may change if the build configuration or generator output location changes. Users will need to build the project first for this tour step to work.

v2/rscg_examples/VYaml/src/Serializer/Person.cs (1)

1-11: LGTM! Proper VYaml class definition.

The Person class correctly uses the [YamlObject] attribute and is marked as partial, which is required for VYaml's source generation. The properties are appropriately defined with public getters and setters, and the Name property includes a default initializer to handle nullability.

v2/rscg_examples_site/docs/indexRSCG.md (1)

10-23: LGTM! Index updated correctly.

The total count is now 233, and the VYaml entry is properly positioned as the most recent addition with correct date formatting and category linkage.

v2/rscg_examples_site/docs/RSCG-Examples/VYaml.md (3)

1009-1029: LGTM! Project file example is clear.

The .csproj example properly demonstrates the required VYaml package references with syntax highlighting on the relevant line.


1037-1070: LGTM! Code examples are well-structured.

The tabbed code examples effectively demonstrate VYaml usage with proper syntax highlighting and character escaping for MDX compatibility.


1080-1219: Generated code example is appropriate.

This extensive code block effectively documents the formatter code generated by VYaml, helping users understand what the source generator produces. The included pragma warnings and structure are typical of generated code.

README.md (1)

29-49: VYaml entry integration looks solid

Numbers, links, and metadata all align with the new catalog entry. Nicely done adding the serializer reference and keeping format consistency.

Comment on lines +1861 to 1868
{
"Name": "VYaml",
"Link": "https://ignatandrei.github.io/RSCG_Examples/v2/docs/Vyaml",
"NuGet": "https://www.nuget.org/packages/VYaml/",
"Source": "https://github.com/hadashiA/VYaml",
"Category": "Serializer",
"AddedOn": "2025-10-03T00:00:00"
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Verify URL casing for consistency.

The Link field uses "/docs/Vyaml" (capital V, lowercase y), while the Name field is "VYaml" (capital V and Y). Ensure this URL matches the actual routing configuration and that the case difference is intentional. If the URL is case-sensitive, this could lead to broken links.

Run the following to verify the URL path exists and matches:


🏁 Script executed:

#!/bin/bash
# Check for VYaml documentation files with different casing
fd -i 'vyaml.md' v2/rscg_examples_site/docs/

Length of output: 49


Fix Link URL casing to match documentation filename.
The Link should be “https://ignatandrei.github.io/RSCG_Examples/v2/docs/VYaml” (uppercase Y) to match v2/rscg_examples_site/docs/RSCG-Examples/VYaml.md and avoid broken links.

🤖 Prompt for AI Agents
In v2/rscg_examples_site/static/exports/RSCG.json around lines 1861 to 1868, the
"Link" value uses "Vyaml" (lowercase y) which does not match the documentation
filename VYaml; update the Link URL to use "VYaml"
(https://ignatandrei.github.io/RSCG_Examples/v2/docs/VYaml) so the casing
matches v2/rscg_examples_site/docs/RSCG-Examples/VYaml.md and prevents broken
links.

Comment on lines +35 to +37
{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/VYaml#download-example-net--c-",
SpeakTest=" "},
{"typeStep":"waitseconds","arg":"30"},
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Fix JSON syntax error.

The JSON is malformed on lines 35-37. The property key SpeakTest is missing quotes and uses = instead of :, and there's a trailing comma before the closing bracket.

Apply this diff to fix the syntax:

 {"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/VYaml#download-example-net--c-",
-SpeakTest=" "},
+"SpeakTest": " "},
 {"typeStep":"waitseconds","arg":"30"},
+]
-]
 }

Alternatively, if SpeakTest should be removed:

-{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/VYaml#download-example-net--c-",
-SpeakTest=" "},
+{"typeStep":"browser","arg":"https://ignatandrei.github.io/RSCG_Examples/v2/docs/VYaml#download-example-net--c-"},
 {"typeStep":"waitseconds","arg":"30"}
 ]
 }

Committable suggestion skipped: line range outside the PR's diff.

🧰 Tools
🪛 Biome (2.1.2)

[error] 35-36: Property key must be double quoted

(parse)


[error] 36-36: unexpected character =

(parse)


[error] 36-36: expected , but instead found " "

Remove " "

(parse)


[error] 36-36: expected : but instead found }

Remove }

(parse)

🤖 Prompt for AI Agents
In v2/rscg_examples/VYaml/video.json around lines 35 to 37, the JSON is
malformed: the property key SpeakTest is unquoted and uses '=' instead of ':',
and there's a trailing comma before the array/object end. Fix by changing the
entry to use a quoted key and colon (e.g. "SpeakTest": " "), and remove the
trailing comma if this is the last item in the array/object; alternatively, if
SpeakTest should be omitted, delete the whole SpeakTest key=value pair and also
remove the trailing comma so the surrounding JSON remains valid.

@ignatandrei ignatandrei merged commit 6b4e0f6 into main Oct 3, 2025
3 checks passed
@ignatandrei ignatandrei deleted the yaml branch October 3, 2025 19:47
@coderabbitai coderabbitai bot mentioned this pull request Oct 4, 2025
@coderabbitai coderabbitai bot mentioned this pull request Nov 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants